package com.pureut.storage.service;
;
import com.pureut.storage.dto.PickingRestDbDto;
import com.pureut.storage.dto.PickingRestHandoverDto;
import com.pureut.storage.dto.SalesReturnDto;
import com.pureut.storage.export.SalesReturnExport;
import com.pureut.storage.vo.OrderReviewVo;
import com.pureut.storage.vo.PickingRestDbVo;
import com.pureut.storage.vo.SalesReturnVo;
import com.sale.common.mybatis.core.page.PageQuery;
import com.sale.common.mybatis.core.page.TableDataInfo;

import java.util.List;

/***
 * 销售退货service
 * Author:C
 * Date:2022/12/29 11:11
 * @DESC
 */
public interface SalesReturnService {

    /**
     * 销售退货分页列表
     */
    TableDataInfo<SalesReturnDto> getSalesList(SalesReturnVo salesReturnVo, PageQuery pageQuery) throws Exception;

    /**
     *  新增
     */
    boolean addSalesReceipt(SalesReturnVo salesReturnVo) throws Exception;

    /**
     * 关结
     */
    boolean close(SalesReturnVo salesReturnVo);

    /**
     * 查看
     */
    SalesReturnDto getView(Long id);

    /**
     * 修改
     */
    boolean updateSalesReceipt(SalesReturnVo salesReturnVo);

    /**
     * 删除
     */
    boolean deleteSalesReceipt(String idStr);

    /**
     * 导出
     * @return
     */
    List<SalesReturnExport> getInfoExport(SalesReturnVo salesReturnVo);

    /**
     * 销售退货pda
     */
    PickingRestDbDto salesReturnPda(PickingRestDbVo pickingRestDbVo) throws Exception;

    /**
     * 销售退货拣货撤销
     */
    boolean pickingCancellation(PickingRestDbVo pickingRestDbVo);

    /**
     * 销售退货拣货完成
     */
    boolean pickingCompleted(PickingRestDbVo pickingRestDbVo) throws Exception;

    /**
     * 销售退货交接
     */
    PickingRestHandoverDto handover(PickingRestDbVo pickingRestDbVo);

    /**
     * 提交审核
     */
    boolean submitReview(Long id);

    /**
     * 撤销审核
     */
    boolean deleteReview(Long id);

    /**
     * 审核
     */
    boolean saleReturnReview(OrderReviewVo orderReviewVo) throws Exception;

//    /**
//     * 销售退货品质检验回传修改数据(品质审核时fegin调用)
//     */
//    boolean updateStatusByQuality(UpdateStatusByQualityVo updateStatusByQualityVo);
}
